.\" source:
.\"   /var/cvs/projects/debian/cracklib/debian/dpkg.src/cracklib-runtime.crack_mkdict.8.in,v
.\"
.\" revision:
.\"   @(#) cracklib-runtime.crack_mkdict.8.in,v 1.7 1999/04/02 14:50:43 jplejacq Exp
.\"
.\" copyright:
.\"   Copyright (C) 1998, 1999 Jean Pierre LeJacq <jplejacq@quoininc.com>
.\"
.\"   Distributed under the GNU GENERAL PUBLIC LICENSE.
.\"
.TH cracklib\-format 8 "Sat Jun 21 22:43:12 CEST 2008" "2.7-8.5" "Debian GNU/Linux manual"
.SH NAME
cracklib\-format, cracklib\-packer, cracklib\-unpacker \- cracklib dictionary utilities
.SH SYNOPSIS
.B cracklib\-format
.IR file
.IR ...

.B cracklib\-packer
.IR cracklib_dictpath

.B cracklib\-unpacker
.IR cracklib_dictpath
.SH DESCRIPTION
.B cracklib\-format
takes a list of text files each containing a list of words, one per line, It
lowercases all words, removes control characters, and sorts the lists.  It
outputs the cleaned up list to standard output.  The text files may be
optionally compressed with
.BR gzip (1).

If you supply massive amounts of text to
.B cracklib\-format
you must have enough free space available for use by the
.BR sort (1)
command.  If you do not have 20Mb free in /var/tmp (or whatever
temporary area your
.BR sort (1)
command uses), have a look at the
.B /usr/sbin/cracklib\-format
program which is a
.BR sh (1)
program.  You can usually tweak the
.BR sort (1)
command to use any large area of disk you desire, by use of the
.B \-T
option.
.B cracklib\-format
has a hook for this.

.B cracklib\-packer
reads from standard input a list of sorted and cleaned words and
creates a database in the directory and prefix given by the command
line argument
.B cracklib_dictpath.
Three files are created with the suffixes of .hwm, .pwd, and .pwi.
These three files are in the format that the
.BR FascistCheck (3)
subroutine,
.BR cracklib\-unpacker (8),
and
.BR cracklib\-check (8),
utilities understand.  The number of words read and written are printed on
.BR stdout (3).

.B cracklib\-unpacker
reads from the database in the directory and prefix given by the command
line argument
.B cracklib_dictpath
and outputs on standard output the list of words that make up the
database.

The database is in a binary format generated by the utilities
.BR cracklib\-format (8)
and
.BR cracklib\-packer (8).
On a Debian system the database is located in the directory
/var/cache/cracklib/cracklib_dict and is generated daily with the program
/etc/cron.daily/cracklib.  The location is also defined in the
header file
.B crack.h
using the constant
.B CRACKLIB_DICTPATH
though none of the subroutines in the cracklib libraries have this
location hardcoded into their implementations.

.SH FILES
.TP
.I /var/cache/cracklib/cracklib_dict.[hwm|pwd|pwi]
cracklib dictionary database files used by utilities.
.TP
.I /etc/cron.daily/cracklib
cracklib daily cron program to rebuild the cracklib dictionary database.
.TP
.I /etc/cracklib/cracklib.conf
cracklib configuration file used by the cracklib daily cron program to
rebuild the cracklib dictionary database.
.TP
.I /usr/include/crack.h
cracklib header file defining the subroutine
.BR FascistCheck(3)
and the constant
.B CRACKLIB_DICTPATH
used to compile in the location of the cracklib dictionary database for
these utilities.
.TP
.I /usr/sbin/cracklib\-format
cracklib shell script to create initial list of words for dictionary
database.
.SH SEE ALSO
.BR FascistCheck (3),
.BR cracklib\-check (8),
.BR update\-cracklib (8),
.BR create\-cracklib\-dict (8)
.br
/usr/share/doc/libcrack2/libcrack2.html
.br
/usr/share/doc/cracklib-runtime/cracklib-runtime.html
.SH AUTHOR
.B cracklib2
is written by Alec Muffett <alecm@crypto.dircon.co.uk>. Manual added
by Jean Pierre LeJacq <jplejacq@quoininc.com>.
